perm filename RAIDUP.TVR[UP,DOC] blob sn#002777 filedate 1972-10-12 generic text, type T, neo UTF8
DEBUG or How to run RAID or DDT from an upper segment.


It  is  now  possible  to run RAID or DDT from an (unprotected) upper
segment, if you do not  already  have  an  upper  segment  (this  may
change).   The  advantage  to  this  is you may save RAID or DDT with
symbols and not have them cluttering up your  core  image  until  you
really  need  them.   DEBUG cleverly notes if you are on a display or
teletype and loads the appropriate flavor of debugger.


To get upper segment RAID or DDT, use the following sequence  instead
of TRY or DEBUG:

.LOAD or EXECUTE DEBUG[1,3],%S<your load modules>
	(%S causes your symbols to be loaded)

You will get an upper segment which contains RAID but you should  not
bother to SSAVE it as it will be loaded if it's not there.


To get upper segment RAID or DDT  and  save  your  symbols,  use  the
following sequence instead of TRY or DEBUG:

.LOAD SDEBUG[1,3],%S<your load modules>
.DDT		;To save your symbols

Your symbols will be saved on a file: <job name>.SYM.  They  will  be
reloaded  in  your upper segement along with RAID's when DDT is typed
to the moniter.

Six cautions:

1) Neither RAID nor DDT is pure so one should not try to attack to an
upper segment with the names *RAID* or *DDT*.

2)  When  you use SDEBUG and you have two copies of a program around,
be sure you use the following procedure to prevent  the  old  symbols
from being clobbered.

Instead of saying DDT immediately after LOADing you should change job
name by say GET <new program name>.* (which will fail of  course  and
just  change  you  job name) and say DDT to save your symbols on <new
job name>.SYM.

This is admittedly kludgy but if you can think  of  a  more  graceful
solution to the problem, send me (TVR) a message.

3)  JOBDDT  will point to the starting address of DEBUG instead of to
DDT or RAID.  Soon, the seven RAID locations will be BLT'ed below the
starting  address of DEBUG so the programs expecting them will do the
right thing.

4) If you use SDEBUG, JOBSYM will be set to the  copy  in  the  upper
segment when DDT is invoked.

5)  Let  it be known that channel 17 is used by DEBUG to read RAID or
DDT in from the disk. When a GETSEG UUO is implimented, this won't be
necessary.

6)  Breakpoints will not work if the RAID or DDT segment  goes  away.
Therefore you should set breakpoints and the save your core image. It
will lose.